home *** CD-ROM | disk | FTP | other *** search
/ Amiga Collections: Nordlicht Spiele / Nordlicht Spiele 05-04 (19xx)(Nordlicht)(DE)(PD).zip / Nordlicht Spiele 05-04 (19xx)(Nordlicht)(DE)(PD).adf / BlackJack (.txt) < prev    next >
AmigaBASIC Source Code  |  1990-01-06  |  12KB  |  546 lines

  1. 'BLACKJACK
  2. SCREEN 1,640,200,3,2
  3. WINDOW 2," BLACKJACK ",,16,1
  4. BREAK ON
  5. ON BREAK GOSUB terminate
  6. OPTION BASE 1
  7. DIM clubs%(100),diamonds%(100),hearts%(100),spades%(100),wvshp%(256)
  8. DIM shoe(4,13)
  9. DIM comp(8,3),play1(8,3),play2(8,3)
  10. GOSUB dfwave
  11. GOSUB setcolors
  12. GOSUB titlepage
  13. setup:
  14.   CLS:LINE(192,32)-(440,152),1,bf
  15.   COLOR 2,3
  16.   LOCATE 6,26:PRINT "        OPTIONS MENU         "
  17.   COLOR 3,2
  18.   LOCATE 8,26:PRINT " 0) HOUSE RULES              "
  19.   LOCATE 10,26:PRINT " 1) DEAL 1 DECK SHOES        "
  20.   LOCATE 12,26:PRINT " 2) DEAL 2 DECK SHOES        "
  21.   LOCATE 14,26:PRINT " 3) DEAL 3 DECK SHOES        "
  22.   LOCATE 16,26:PRINT " 4) DEAL 4 DECK SHOES        "
  23.   COLOR 2,3
  24.   LOCATE 18,26:PRINT " SELECT NUMBER OR USE MOUSE  " 
  25.   mouseclear=MOUSE(0)
  26.   GOSUB startselect
  27.   COLOR 1,0:CLS
  28.   IF qa$="0" THEN
  29.     GOSUB instructions
  30.     GOTO setup
  31.   END IF
  32.   decks=VAL(qa$)
  33.   CLS
  34.   totcards=decks*52
  35.   playbet=0:handsdealt=0
  36.   playmoney=10000
  37.   compmoney=100000
  38.   handbin=0:hand2bin=0
  39. newshoe:
  40.   GOSUB shuffle
  41. sameshoe:
  42.   GOSUB takebet
  43.   GOSUB dealcards
  44.   GOSUB totalhands
  45.   GOSUB displaytext
  46.   GOSUB player
  47.   GOSUB computer
  48.   GOSUB results
  49.   handsdealt=handsdealt+1
  50.   IF compmoney=0 THEN GOTO terminate
  51.   IF playmoney=0 THEN GOTO terminate
  52.   IF totcards-totdealt>7 THEN sameshoe :ELSE newshoe  
  53. setcolors:
  54.   PALETTE 0,0.4,0.77,0.3 ' green
  55.   PALETTE 1,0,0,0 ' black
  56.   PALETTE 2,1,1,1 ' white
  57.   PALETTE 3,0.93,0.2,0 'red
  58.   PALETTE 4,1,1,0.13 ' yellow
  59.   PALETTE 5,0.4,0.6,1 'blue
  60.   PALETTE 6,0,0.93,0.87 'aqua
  61.   PALETTE 7,0.53,0.53,0.53 'grey
  62. RETURN
  63. terminate:
  64.   COLOR 1,7:CLS:COLOR 2,1
  65.   PRINT:PRINT
  66.   IF compmoney=0 THEN
  67.     PRINT " CONGRATULATIONS YOU BROKE THE BANK !!!!!!! "
  68.     PRINT:PRINT" NOW GO AWAY !!!!!!!! "
  69.   ELSEIF playmoney=0 THEN
  70.     PRINT" NO MONEY LEFT.........BYE SEE YA!!!!!!!! "
  71.     PRINT:PRINT" COME BACK REAL SOON..........BRING CASH!!!!!!! "
  72.   ELSE
  73.     PRINT" QUITTER !!!!!!!!!!!!!"
  74.   END IF
  75.   PRINT:PRINT:COLOR 1,7
  76.   PRINT " THERE WERE ";handsdealt;"HANDS PLAYED"
  77.   FOR x=1 TO 15000:NEXT x 
  78.   WINDOW CLOSE 2
  79.   SCREEN CLOSE 1
  80.   PALETTE 0,0.2,0.3,0.5
  81.   PALETTE 1,1,1,1
  82.   PALETTE 2,0,0,0
  83.   PALETTE 3,0.9,0.59,0
  84.   CLS
  85. END
  86. titlepage:
  87.   COLOR 1,0:CLS
  88.   LINE(18,8)-(540,152),,b:PAINT(28,28),4,1
  89.   LINE(144,64)-(416,96),,b:PAINT(154,71),1,1
  90.   COLOR 3,2
  91.   LOCATE 10,28:PRINT " ' BLACKJACK ' "
  92.   COLOR 1,0
  93.   whohand=1
  94.   suit=4:card=11:whatcard=0:GOSUB drwcrd:x1=38:y1=33:GOSUB spade
  95.   suit=3:card=1:whatcard=1:GOSUB drwcrd:x1=101:y1=31:GOSUB heart
  96.   suit=1:card=11:whatcard=6:GOSUB drwcrd:x1=424:y1=30:GOSUB club
  97.   suit=2:card=1:whatcard=7:GOSUB drwcrd:x1=489:y1=29:GOSUB diamond
  98.   whohand=2
  99.   suit=2:card=11:whatcard=0:GOSUB drwcrd:x1=41:y1=101:GOSUB diamond
  100.   suit=1:card=1:whatcard=1:GOSUB drwcrd:x1=102:y1=102:GOSUB club
  101.   suit=3:card=11:whatcard=6:GOSUB drwcrd:x1=421:y1=103:GOSUB heart
  102.   suit=4:card=1:whatcard=7:GOSUB drwcrd:x1=486:y1=105:GOSUB spade
  103.   GET (32,28)-(52,39),spades%
  104.   GET (96,28)-(116,39),hearts%
  105.   GET (416,28)-(436,39),clubs%
  106.   GET (480,28)-(500,39),diamonds%
  107.   FOR x=1 TO 5000: NEXT x
  108. RETURN
  109. club:
  110.   CIRCLE(x1,y1),3,1:PAINT STEP (0,0),1,1
  111.   CIRCLE STEP (-4,3),3,1:PAINT STEP (0,0),1,1
  112.   CIRCLE STEP (8,0),3,1:PAINT STEP (0,0),1,1
  113.   LINE STEP (-5,1) - STEP (2,2),,bf
  114.   RETURN
  115. diamond:
  116.   COLOR 3,2
  117.   AREA(x1,y1):AREA STEP(6,3):AREA STEP(-7,3):AREA STEP(-6,-3)
  118.   AREAFILL
  119.   COLOR 1,0
  120.   RETURN
  121. heart:
  122.   COLOR 3,2
  123.   CIRCLE(x1,y1),4,3:PAINT STEP(0,0),3,3
  124.   CIRCLE STEP(8,0),4,3:PAINT STEP(0,0),3,3
  125.   AREA STEP(4,0):AREA STEP(-8,4):AREA STEP(-8,-4)
  126.   AREAFILL
  127.   COLOR 1,0
  128.   RETURN
  129. spade:
  130.   CIRCLE(x1,y1),4,1:PAINT STEP(0,0),1,1
  131.   CIRCLE STEP(8,0),4,1:PAINT STEP(0,0),1,1
  132.   AREA STEP(4,0):AREA STEP(-8,-4):AREA STEP(-8,4)
  133.   AREAFILL
  134.   LINE STEP(7,2) - STEP(2,2),,bf
  135.   RETURN
  136. instructions:
  137.   COLOR 1,7:CLS:COLOR 2,1
  138.   PRINT:PRINT:LOCATE 3,10
  139.   PRINT " HOUSE RULES ":PRINT:COLOR 1,7
  140.   PRINT:PRINT "  BLACKJACKS PAY ONE AND A HALF TIMES THE BET ON THE FIRST HAND ONLY"
  141.   PRINT:PRINT "  DEALER HITS ON 16 OR LESS AND STAYS ON 17 OR MORE"
  142.   PRINT:PRINT "  NO MONEY CHANGES HANDS ON A TIE"
  143.   PRINT:PRINT "  YOU CAN SPLIT CARDS OF EQUAL VALUE ON THE FIRST HAND ONLY"
  144.   PRINT:PRINT "  YOU CAN DOUBLE THE BET FOR ONE CARD ON THE FIRST HAND ONLY" 
  145.   PRINT:PRINT "  HIT ENTER IN THE BET WINDOW TO REPEAT LAST BET VALUE"
  146.   LOCATE 20,10:COLOR 2,1
  147.   PRINT " CLICK LEFT MOUSE BUTTON TO CONTINUE "
  148.   COLOR 1,0
  149.   loop1:
  150.   IF MOUSE(0)=0 THEN loop1
  151.   RETURN
  152. shuffle:
  153.   RANDOMIZE TIMER
  154.   FOR x=1 TO 4
  155.   FOR z=1 TO 13
  156.   shoe(x,z)=0
  157.   NEXT z
  158.   NEXT x
  159.   totdealt=0
  160.   GOSUB shuffsound
  161. RETURN
  162. takebet:
  163.   WINDOW 3," BET ",(540,106)-(630,180),0,1
  164.   COLOR 3,2
  165.   ON BREAK GOSUB winowbreak
  166. rebet:
  167.   CLS
  168.   lstcash=playmoney:lstbet=playbet
  169.   PRINT
  170.   PRINT " BANK ":PRINT "   ";compmoney
  171.   PRINT
  172.   PRINT " YOU  ":PRINT "   ";playmoney
  173.   PRINT
  174.   PRINT " ENTER BET"
  175.   INPUT playbet$: playbet=VAL(playbet$)
  176.   IF playbet$="" THEN playbet=lstbet
  177.   IF playbet>playmoney OR playbet>compmoney OR playbet<1 THEN rebet
  178.   playmoney=playmoney-playbet
  179.   compmoney=compmoney-playbet
  180.   handbin=2*playbet:hand2bin=0
  181.   WINDOW CLOSE 3
  182.   COLOR 1,0
  183.   ON BREAK GOSUB terminate
  184. RETURN
  185. dealcards:
  186.   CLS:prntmenu=1:blackjack=0
  187.   bnkbusted=0:sbusted=0:double=0
  188.   dealt=1:playdone=0:onecard=0:busted=0:split=0
  189. redeal:
  190.   IF totcards-totdealt<2 THEN GOSUB shuffle
  191.   suit = INT((RND(1)*4)+1)
  192.   card = INT((RND(1)*13)+1)
  193.   IF shoe(suit,card)>=decks THEN redeal
  194.   shoe(suit,card)=shoe(suit,card)+1
  195.   cvalue=card
  196.   IF cvalue>10 THEN cvalue=10
  197.   IF cvalue=1 THEN cvalue=11
  198.   IF onecard =1 THEN RETURN
  199.   IF dealt=1 THEN
  200.     play1(1,1)=suit:play1(1,2)=card:play1(1,3)=cvalue
  201.     whohand=2:whatcard=0:GOSUB drwcrd
  202.   END IF
  203.   IF dealt=2 THEN
  204.     comp(1,1)=suit:comp(1,2)=card:comp(1,3)=cvalue
  205.     whohand=1:whatcard=0:GOSUB drwcrd
  206.   END IF
  207.   IF dealt=3 THEN
  208.     play1(2,1)=suit:play1(2,2)=card:play1(2,3)=cvalue
  209.     whohand=2:whatcard=1:GOSUB drwcrd
  210.   END IF
  211.   IF dealt=4 THEN
  212.     comp(2,1)=suit:comp(2,2)=card:comp(2,3)=cvalue
  213.     LINE(96,28)-(144,60),,b:SOUND 20,1,255,1
  214.     PAINT(106,38),5,1
  215.   END IF
  216.   dealt=dealt+1
  217.   IF dealt <5 THEN redeal
  218.   totdealt=totdealt+4
  219.   play1dealt=2
  220.   play2dealt=0
  221.   compdealt=2
  222. RETURN
  223. totalhands:
  224.   play1tot=0:play2tot=0:comptot=0
  225.   FOR x=1 TO play1dealt
  226.   play1tot = play1tot + play1(x,3)
  227.   NEXT x
  228.   FOR x=1 TO compdealt
  229.   comptot = comptot + comp(x,3)
  230.   NEXT x
  231.   IF play2dealt = 0 THEN RETURN
  232.   FOR x=1 TO play2dealt
  233.   play2tot = play2tot + play2(x,3)
  234.   NEXT x
  235.   RETURN
  236. displaytext:
  237.   COLOR 1,0
  238.   IF prntmenu=1 THEN
  239.     LOCATE 3,5:PRINT "COMPUTER HAND:     TOTAL = "
  240.     LOCATE 12,5:PRINT "PLAYER HAND #1:    TOTAL = "
  241.     LOCATE 19,5:PRINT "PLAYER HAND #2:    TOTAL = "
  242.     LOCATE 3,45:PRINT "LAST BET =  "
  243.     LOCATE 12,45:PRINT "LAST CASH = "
  244.     LINE(540,0)-(635,88),,b:PAINT(550,20),3,1
  245.     COLOR 2,1
  246.     LOCATE 2,70:PRINT " OPTIONS "
  247.     COLOR 1,4
  248.     LOCATE 4,70:PRINT "(S) STAND"
  249.     LOCATE 6,70:PRINT "(H) HIT  "
  250.     LOCATE 8,70:PRINT "(D) DBLE "
  251.     LOCATE 10,70:PRINT "(X) SPLIT"
  252.     COLOR 1,0:prntmenu=0
  253.   END IF
  254.   LOCATE 12,32:PRINT play1tot;"    "
  255.   LOCATE 3,57:PRINT playbet;"    "
  256.   LOCATE 12,57:PRINT lstcash;"    "
  257.   IF playdone=1 THEN LOCATE 3,32:PRINT comptot;"    "
  258.   IF play2dealt=0 THEN RETURN
  259.   LOCATE 19,32:PRINT play2tot;"    "
  260.   RETURN  
  261. player:
  262.   IF comptot=21 AND play1tot<> 21 THEN RETURN
  263.   IF play1tot=21 AND play1dealt=2 AND split=0 THEN
  264.     IF comptot <> 21 THEN
  265.       handbin=handbin+0.5*playbet
  266.       compmoney=compmoney-0.5*playbet
  267.       blackjack=1
  268.       RETURN
  269.     END IF
  270.    RETURN
  271.   END IF
  272.   IF play1tot>21 AND play1dealt=2 GOTO doubleace
  273.   GOSUB imouser
  274.   IF qa$="s" THEN RETURN
  275.   IF qa$="h" THEN
  276. doubleit:
  277.     onecard=1:GOSUB redeal
  278.     play1dealt=play1dealt+1:totdealt=totdealt+1
  279.     play1(play1dealt,1)=suit:play1(play1dealt,2)=card:play1(play1dealt,3)=cvalue
  280.     whohand=2:whatcard=play1dealt-1:GOSUB drwcrd
  281.     GOSUB totalhands
  282. doubleace:
  283.     IF play1tot > 21 THEN
  284.       switch=0:busted=1
  285.       FOR x=1 TO play1dealt
  286.       IF play1(x,2)=1 AND play1(x,3)=11 AND switch=0 THEN
  287.         play1(x,3)=1:play1tot=play1tot-10:switch=1:busted=0
  288.       END IF
  289.       NEXT x
  290.     END IF
  291.     GOSUB displaytext
  292.     IF busted=1 THEN
  293.       COLOR 1,3:LOCATE 13,8
  294.       PRINT " BUSTED "
  295.       COLOR 1,0
  296.       RETURN
  297.     END IF
  298.     IF double =1 THEN RETURN
  299.     GOTO player
  300.   END IF
  301.   IF qa$="d" AND playmoney>=playbet AND play1dealt =2 AND split=0 THEN
  302.     compmoney=compmoney-playbet
  303.     playmoney=playmoney-playbet
  304.     playbet=playbet*2
  305.     handbin=handbin*2
  306.     double=1
  307.     GOSUB doubleit
  308.     RETURN
  309.   END IF
  310.   IF qa$="x" AND split=0 AND playmoney>=playbet AND play1dealt=2 THEN
  311.     IF play1(1,3)<>play1(2,3)THEN
  312.       IF play1(1,2)<>play1(2,2) THEN GOTO player
  313.     END IF
  314.     hand2bin=handbin:split=1
  315.     compmoney=compmoney-playbet
  316.     playmoney=playmoney-playbet
  317.     play2(1,1)=play1(2,1):play2(1,2)=play1(2,2):play2(1,3)=play1(2,3)
  318.     IF play1(1,2)=1 AND play1(1,3)=1 THEN play1(1,3)=11
  319.     IF play2(1,2)=1 AND play2(1,3)=1 THEN play2(1,3)=11
  320.     suit=play2(1,1):card=play2(1,2)
  321.     whohand=3:whatcard=0
  322.     GOSUB drwcrd
  323.     onecard=1:GOSUB redeal
  324.     play1(2,1)=suit:play1(2,2)=card:play1(2,3)=cvalue
  325.     whohand=2:whatcard=1
  326.     PAINT (106,110),0,0:GOSUB drwcrd
  327.     onecard=1:GOSUB redeal
  328.     play2(2,1)=suit:play(2,2)=card:play2(2,3)=cvalue
  329.     whohand=3:whatcard=1
  330.     GOSUB drwcrd
  331.     totdealt=totdealt+2:play2dealt=2
  332.     GOSUB totalhands
  333.     GOSUB displaytext
  334.   END IF    
  335.   GOTO player
  336. secondhand:
  337.   IF play2tot>21 AND play2dealt=2 GOTO twinace
  338.   GOSUB imouser
  339.   IF qa$="s" THEN RETURN
  340.   IF qa$="h" THEN
  341.     onecard=1:GOSUB redeal
  342.     play2dealt=play2dealt+1:totdealt=totdealt+1
  343.     play2(play2dealt,1)=suit:play2(play2dealt,2)=card:play2(play2dealt,3)=cvalue
  344.     whohand=3:whatcard=play2dealt-1:GOSUB drwcrd
  345.     GOSUB totalhands
  346. twinace:
  347.     IF play2tot>21 THEN
  348.       switch=0:sbusted=1
  349.       FOR x=1 TO play2dealt
  350.       IF play2(x,2)=1 AND play2(x,3)=11 AND switch=0 THEN
  351.         play2(x,3)=1:play2tot=play2tot-10:switch=1:sbusted=0
  352.       END IF
  353.       NEXT x
  354.     END IF
  355.     GOSUB displaytext
  356.     IF sbusted=1 THEN
  357.       COLOR 1,3:LOCATE 20,8
  358.       PRINT " BUSTED "
  359.       COLOR 1,0
  360.       RETURN
  361.     END IF
  362.     END IF
  363.     GOTO secondhand  
  364. computer:
  365.   IF split=1 THEN BEEP:CIRCLE(22,160),6,3:PAINT(22,160),3,3:GOSUB secondhand
  366.   playdone=1:whohand=1:whatcard=1
  367.   suit=comp(2,1):card=comp(2,2)
  368.   PAINT (106,38),0,1:GOSUB drwcrd
  369.   IF blackjack=1 THEN GOSUB displaytext: RETURN
  370.   IF comptot>21 AND compdealt=2 THEN dblace=1:GOTO twoaces
  371.   GOSUB displaytext
  372.   FOR x=1 TO 3000:NEXT x
  373. adjusted:
  374.   IF split=0 AND busted=1 THEN RETURN
  375.   IF split=1 AND busted=1 AND sbusted=1 THEN RETURN
  376.   WHILE (comptot<17)
  377.     onecard=1:GOSUB redeal
  378.     compdealt=compdealt+1:totdealt=totdealt+1
  379.     comp(compdealt,1)=suit:comp(compdealt,2)=card:comp(compdealt,3)=cvalue
  380.     whocard=1:whatcard=compdealt-1:GOSUB drwcrd
  381.     GOSUB totalhands
  382. twoaces:
  383.     IF comptot>21 THEN
  384.       switch=0:bnkbusted=1
  385.       FOR x=1 TO compdealt
  386.       IF comp(x,2)=1 AND comp(x,3)=11 AND switch=0 THEN
  387.         comp(x,3)=1:comptot=comptot-10:switch=1:bnkbusted=0
  388.       END IF
  389.       NEXT x
  390.     END IF
  391.     GOSUB displaytext
  392.     IF dblace=1 THEN dblace=0:GOTO adjusted
  393.     FOR x = 1 TO 3000:NEXT x
  394.   WEND
  395.   IF bnkbusted=1 THEN LOCATE 4,8:COLOR 1,3:PRINT " BUSTED "
  396.   COLOR 1,0
  397.   RETURN
  398. results:
  399.   IF busted = 1 THEN
  400.     compmoney=compmoney+handbin
  401.   ELSEIF bnkbusted=1 THEN
  402.     playmoney=playmoney+handbin
  403.   ELSEIF comptot > play1tot THEN
  404.     compmoney=compmoney+handbin
  405.   ELSEIF play1tot>comptot THEN
  406.     playmoney=playmoney+handbin
  407.   ELSE
  408.     playmoney=playmoney+playbet
  409.     compmoney=compmoney+playbet
  410.   END IF
  411.   IF split <>0 THEN
  412.     IF sbusted=1 THEN
  413.       compmoney=compmoney+hand2bin
  414.     ELSEIF bnkbusted=1 THEN
  415.       playmoney=playmoney+hand2bin
  416.     ELSEIF comptot>play2tot THEN
  417.       compmoney=compmoney+hand2bin
  418.     ELSEIF play2tot>comptot THEN
  419.       playmoney=playmoney+hand2bin
  420.     ELSE
  421.       playmoney=playmoney+playbet
  422.       compmoney=compmoney+playbet
  423.     END IF
  424.   END IF
  425.   RETURN
  426. imouser:
  427.   qa$=""
  428.   WHILE(qa$="")
  429.     IF MOUSE(0)>0 THEN
  430.       IF MOUSE(1)>552 AND MOUSE(1)<632 THEN
  431.         IF MOUSE(2)>24 AND MOUSE(2)<32 THEN
  432.           qa$="s"
  433.         ELSEIF MOUSE(2)>40 AND MOUSE(2)<48 THEN
  434.           qa$="h"
  435.         ELSEIF MOUSE(2)>56 AND MOUSE(2)<64 THEN
  436.           qa$="d"
  437.         ELSEIF MOUSE(2)>72 AND MOUSE(2)<80 THEN
  438.           qa$="x"
  439.         ELSE
  440.           qa$=""
  441.         END IF
  442.       END IF
  443.     END IF
  444.     IF qa$="" THEN qa$=INKEY$
  445.   WEND
  446.   RETURN
  447. startselect:
  448.   qa$=""
  449.   WHILE(qa$="")
  450.     IF MOUSE(0)>0 THEN
  451.       IF MOUSE(1)>200 AND MOUSE(1)<432 THEN
  452.         IF MOUSE(2)>56 AND MOUSE(2)<64 THEN
  453.           qa$="0"
  454.         ELSEIF MOUSE(2)>72 AND MOUSE(2)<80 THEN
  455.           qa$="1"
  456.         ELSEIF MOUSE(2)>88 AND MOUSE(2)<96 THEN
  457.           qa$="2"
  458.         ELSEIF MOUSE(2)>104 AND MOUSE(2)<112 THEN
  459.           qa$="3"
  460.         ELSEIF MOUSE(2)>120 AND MOUSE(2)<128 THEN
  461.           qa$="4"  
  462.         ELSE
  463.           qa$=""
  464.         END IF
  465.       END IF
  466.     END IF
  467.     IF qa$="" THEN qa$=INKEY$
  468.   WEND
  469.   RETURN
  470. drwcrd:
  471.   IF suit=1 OR suit=4 THEN COLOR 1,0 :ELSE COLOR 3,0
  472.   IF whohand=1 THEN
  473.     y1=28:y2=60:numlin=6
  474.   ELSEIF whohand=2 THEN
  475.     y1=100:y2=132:numlin=15
  476.   ELSE
  477.     y1=156:y2=186:numlin=22
  478.   END IF
  479.   LINE(whatcard*64+32,y1)-(whatcard*64+80,y2),,b
  480.   SOUND 20,1,255,1
  481.   IF suit=1 OR suit=4 THEN
  482.     PAINT (whatcard*64+42,y1+10),2,1
  483.   ELSE
  484.     PAINT (whatcard*64+42,y1+10),2,3
  485.   END IF
  486.   IF suit=1 THEN
  487.     COLOR 1,2:PUT (whatcard*64+32,y1),clubs%,PSET
  488.   ELSEIF suit=2 THEN
  489.     COLOR 3,2:PUT (whatcard*64+32,y1),diamonds%,PSET
  490.   ELSEIF suit=3 THEN
  491.     COLOR 3,2:PUT (whatcard*64+32,y1),hearts%,PSET
  492.   ELSE
  493.     COLOR 1,2:PUT (whatcard*64+32,y1),spades%,PSET
  494.   END IF
  495.  
  496.   LOCATE numlin,whatcard*8+7
  497.   GOSUB altchar
  498.   COLOR 1,0
  499.   RETURN
  500. altchar:
  501.   IF suit=2 OR suit=3 THEN
  502.     COLOR 3,2
  503.   ELSE
  504.     COLOR 1,2
  505.   END IF
  506.   IF card>10 OR card=1 THEN
  507.     IF card=11 THEN PRINT "J "
  508.     IF card=12 THEN PRINT "Q "
  509.     IF card =13 THEN PRINT "K "
  510.     IF card=1 THEN PRINT "A "
  511.   ELSE
  512.     IF card=10 THEN
  513.       PRINT RIGHT$(STR$(card),2)
  514.     ELSE
  515.       PRINT RIGHT$(STR$(card),1)+" "
  516.     END IF
  517.   END IF
  518.   RETURN
  519. dfwave:
  520.   xvalue=127
  521.   FOR xx=0 TO 15
  522.   FOR yy=1 TO 16
  523.   wvshp%(xx*16+yy)=xvalue
  524.   NEXT yy
  525.   xvalue=INT(xvalue*0.63)
  526.   NEXT xx
  527.   WAVE 1,wvshp%
  528.   ERASE wvshp%
  529. RETURN
  530. shuffsound:
  531.   FOR qq=1 TO 3
  532.   FOR xx=1 TO 8
  533.   SOUND 50,1,255,1
  534.   FOR zz= 1 TO 140:NEXT zz
  535.   NEXT xx
  536.   FOR zz= 1 TO 1000:NEXT zz
  537.   SOUND 40,1,255,1
  538.   FOR zz= 1 TO 500:NEXT zz
  539.   SOUND 40,1,255,1
  540.   FOR zz= 1 TO 3000:NEXT zz
  541.   NEXT qq
  542.   RETURN
  543. winowbreak:
  544.   RETURN
  545.                       
  546.